package com.ygqh.baby.po;

import com.alibaba.fastjson.annotation.JSONField;
import com.ygqh.baby.utils.DateConvertUtils;

import java.math.BigDecimal;
import java.util.Date;

public class WdtQybOrderDetail implements Cloneable {
    @JSONField(name = "rec_id")
    private Integer recId;

    @JSONField(name = "trade_id")
    private Integer tradeId;

    @JSONField(name = "spec_id")
    private Integer specId;

    @JSONField(name = "platform_id")
    private Integer platformId;

    @JSONField(name = "src_oid")
    private String srcOid;

    @JSONField(name = "suite_id")
    private Integer suiteId;

    @JSONField(name = "src_tid")
    private String srcTid;

    @JSONField(name = "gift_typeint")
    private Integer giftTypeint;

    @JSONField(name = "refund_status")
    private Integer refundStatus;

    @JSONField(name = "guarantee_mode")
    private Integer guaranteeMode;

    @JSONField(name = "delivery_term")
    private Integer deliveryTerm;

    @JSONField(name = "bind_oid")
    private String bindOid;

    @JSONField(name = "num")
    private BigDecimal num;

    @JSONField(name = "price")
    private BigDecimal price;

    @JSONField(name = "actual_num")
    private BigDecimal actualNum;

    @JSONField(name = "refund_num")
    private BigDecimal refundNum;

    @JSONField(name = "order_price")
    private BigDecimal orderPrice;

    @JSONField(name = "share_price")
    private BigDecimal sharePrice;

    @JSONField(name = "adjust")
    private BigDecimal adjust;

    @JSONField(name = "discount")
    private BigDecimal discount;

    @JSONField(name = "share_amount")
    private BigDecimal shareAmount;

    @JSONField(name = "share_post")
    private BigDecimal sharePost;

    @JSONField(name = "paid")
    private BigDecimal paid;

    @JSONField(name = "goods_name")
    private String goodsName;

    @JSONField(name = "prop2")
    private String prop2;

    @JSONField(name = "goods_id")
    private Integer goodsId;

    @JSONField(name = "goods_no")
    private String goodsNo;

    @JSONField(name = "spec_name")
    private String specName;

    @JSONField(name = "spec_no")
    private String specNo;

    @JSONField(name = "spec_code")
    private String specCode;

    @JSONField(name = "suite_no")
    private String suiteNo;

    @JSONField(name = "suite_name")
    private String suiteName;

    @JSONField(name = "suite_num")
    private BigDecimal suiteNum;

    @JSONField(name = "suite_amount")
    private BigDecimal suiteAmount;

    @JSONField(name = "suite_discount")
    private BigDecimal suiteDiscount;

    @JSONField(name = "api_goods_name")
    private String apiGoodsName;

    @JSONField(name = "api_spec_name")
    private String apiSpecName;

    @JSONField(name = "weight")
    private BigDecimal weight;

    @JSONField(name = "commission")
    private BigDecimal commission;

    @JSONField(name = "goods_type")
    private Integer goodsType;

    @JSONField(name = "large_type")
    private Integer largeType;

    @JSONField(name = "invoice_type")
    private Integer invoiceType;

    @JSONField(name = "invoice_content")
    private String invoiceContent;

    @JSONField(name = "from_mask")
    private Integer fromMask;

    @JSONField(name = "cid")
    private Integer cid;

    @JSONField(name = "remark")
    private String remark;

    @JSONField(name = "modified")
    private Date modified;

    @JSONField(name = "created")
    private Date created;

    @JSONField(name = "tax_rate")
    private BigDecimal taxRate;

    @JSONField(name = "base_unit_id")
    private Integer baseUnitId;

    @JSONField(name = "unit_name")
    private String unitName;

    @JSONField(name = "img_url")
    private String imgUrl;

    @JSONField(name = "pay_id")
    private String payId;

    private Long id;

    private String shopNo;

    private String shopName;

    private BigDecimal costPrice = BigDecimal.ZERO;

    private String warehouseNo ;

    public String getWarehouseNo() {
        return warehouseNo;
    }

    public void setWarehouseNo(String warehouseNo) {
        this.warehouseNo = warehouseNo;
    }

    public BigDecimal getCostPrice() {
        return costPrice;
    }

    public BigDecimal getTotalCostPrice() {
        return costPrice.multiply(num);
    }

    public void setCostPrice(BigDecimal costPrice) {
        this.costPrice = costPrice == null ? BigDecimal.ZERO : costPrice;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getShopNo() {
        return shopNo;
    }

    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Integer getRecId() {
        return recId;
    }

    public void setRecId(Integer recId) {
        this.recId = recId;
    }

    public Integer getTradeId() {
        return tradeId;
    }

    public void setTradeId(Integer tradeId) {
        this.tradeId = tradeId;
    }

    public Integer getSpecId() {
        return specId;
    }

    public void setSpecId(Integer specId) {
        this.specId = specId;
    }

    public Integer getPlatformId() {
        return platformId;
    }

    public void setPlatformId(Integer platformId) {
        this.platformId = platformId;
    }

    public String getSrcOid() {
        return srcOid;
    }

    public void setSrcOid(String srcOid) {
        this.srcOid = srcOid == null ? null : srcOid.trim();
    }

    public Integer getSuiteId() {
        return suiteId;
    }

    public void setSuiteId(Integer suiteId) {
        this.suiteId = suiteId;
    }

    public String getSrcTid() {
        return srcTid;
    }

    public void setSrcTid(String srcTid) {
        this.srcTid = srcTid == null ? null : srcTid.trim();
    }

    public Integer getGiftTypeint() {
        return giftTypeint;
    }

    public void setGiftTypeint(Integer giftTypeint) {
        this.giftTypeint = giftTypeint;
    }

    public Integer getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    public Integer getGuaranteeMode() {
        return guaranteeMode;
    }

    public void setGuaranteeMode(Integer guaranteeMode) {
        this.guaranteeMode = guaranteeMode;
    }

    public Integer getDeliveryTerm() {
        return deliveryTerm;
    }

    public void setDeliveryTerm(Integer deliveryTerm) {
        this.deliveryTerm = deliveryTerm;
    }

    public String getBindOid() {
        return bindOid;
    }

    public void setBindOid(String bindOid) {
        this.bindOid = bindOid == null ? null : bindOid.trim();
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getActualNum() {
        return actualNum;
    }

    public void setActualNum(BigDecimal actualNum) {
        this.actualNum = actualNum;
    }

    public BigDecimal getRefundNum() {
        return refundNum;
    }

    public void setRefundNum(BigDecimal refundNum) {
        this.refundNum = refundNum;
    }

    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    public BigDecimal getSharePrice() {
        return sharePrice;
    }

    public void setSharePrice(BigDecimal sharePrice) {
        this.sharePrice = sharePrice;
    }

    public BigDecimal getAdjust() {
        return adjust;
    }

    public void setAdjust(BigDecimal adjust) {
        this.adjust = adjust;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getShareAmount() {
        return shareAmount;
    }

    public void setShareAmount(BigDecimal shareAmount) {
        this.shareAmount = shareAmount;
    }

    public BigDecimal getSharePost() {
        return sharePost;
    }

    public void setSharePost(BigDecimal sharePost) {
        this.sharePost = sharePost;
    }

    public BigDecimal getPaid() {
        return paid;
    }

    public void setPaid(BigDecimal paid) {
        this.paid = paid;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName == null ? null : goodsName.trim();
    }

    public String getProp2() {
        return prop2;
    }

    public void setProp2(String prop2) {
        this.prop2 = prop2 == null ? null : prop2.trim();
    }

    public Integer getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Integer goodsId) {
        this.goodsId = goodsId;
    }

    public String getGoodsNo() {
        return goodsNo;
    }

    public void setGoodsNo(String goodsNo) {
        this.goodsNo = goodsNo == null ? null : goodsNo.trim();
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName == null ? null : specName.trim();
    }

    public String getSpecNo() {
        return specNo;
    }

    public void setSpecNo(String specNo) {
        this.specNo = specNo == null ? null : specNo.trim();
    }

    public String getSpecCode() {
        return specCode;
    }

    public void setSpecCode(String specCode) {
        this.specCode = specCode == null ? null : specCode.trim();
    }

    public String getSuiteNo() {
        return suiteNo;
    }

    public void setSuiteNo(String suiteNo) {
        this.suiteNo = suiteNo == null ? null : suiteNo.trim();
    }

    public String getSuiteName() {
        return suiteName;
    }

    public void setSuiteName(String suiteName) {
        this.suiteName = suiteName == null ? null : suiteName.trim();
    }

    public BigDecimal getSuiteNum() {
        return suiteNum;
    }

    public void setSuiteNum(BigDecimal suiteNum) {
        this.suiteNum = suiteNum;
    }

    public BigDecimal getSuiteAmount() {
        return suiteAmount;
    }

    public void setSuiteAmount(BigDecimal suiteAmount) {
        this.suiteAmount = suiteAmount;
    }

    public BigDecimal getSuiteDiscount() {
        return suiteDiscount;
    }

    public void setSuiteDiscount(BigDecimal suiteDiscount) {
        this.suiteDiscount = suiteDiscount;
    }

    public String getApiGoodsName() {
        return apiGoodsName;
    }

    public void setApiGoodsName(String apiGoodsName) {
        this.apiGoodsName = apiGoodsName == null ? null : apiGoodsName.trim();
    }

    public String getApiSpecName() {
        return apiSpecName;
    }

    public void setApiSpecName(String apiSpecName) {
        this.apiSpecName = apiSpecName == null ? null : apiSpecName.trim();
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public BigDecimal getCommission() {
        return commission;
    }

    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }

    public Integer getLargeType() {
        return largeType;
    }

    public void setLargeType(Integer largeType) {
        this.largeType = largeType;
    }

    public Integer getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(Integer invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceContent() {
        return invoiceContent;
    }

    public void setInvoiceContent(String invoiceContent) {
        this.invoiceContent = invoiceContent == null ? null : invoiceContent.trim();
    }

    public Integer getFromMask() {
        return fromMask;
    }

    public void setFromMask(Integer fromMask) {
        this.fromMask = fromMask;
    }

    public Integer getCid() {
        return cid;
    }

    public void setCid(Integer cid) {
        this.cid = cid;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public Date getModified() {
        return modified;
    }

    public void setModified(Date modified) {
        this.modified = modified;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public Integer getBaseUnitId() {
        return baseUnitId;
    }

    public void setBaseUnitId(Integer baseUnitId) {
        this.baseUnitId = baseUnitId;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName == null ? null : unitName.trim();
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl == null ? null : imgUrl.trim();
    }

    public String getPayId() {
        return payId;
    }

    public void setPayId(String payId) {
        this.payId = payId == null ? null : payId.trim();
    }

    public Date getCreateDate() {
        return created == null ? DateConvertUtils.getDateStart(new Date()) : DateConvertUtils.getDateStart(created);
    }

    @Override
    public WdtQybOrderDetail clone() {
        WdtQybOrderDetail order = null;
        try {
            order = (WdtQybOrderDetail) super.clone(); // 浅复制
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return order;
    }

    @Override
    public String toString() {
        return "WdtQybOrderDetail [recId=" + recId + ", tradeId=" + tradeId + ", specId=" + specId + ", platformId="
                + platformId + ", srcOid=" + srcOid + ", suiteId=" + suiteId + ", srcTid=" + srcTid + ", giftTypeint="
                + giftTypeint + ", refundStatus=" + refundStatus + ", guaranteeMode=" + guaranteeMode
                + ", deliveryTerm=" + deliveryTerm + ", bindOid=" + bindOid + ", num=" + num + ", price=" + price
                + ", actualNum=" + actualNum + ", refundNum=" + refundNum + ", orderPrice=" + orderPrice
                + ", sharePrice=" + sharePrice + ", adjust=" + adjust + ", discount=" + discount + ", shareAmount="
                + shareAmount + ", sharePost=" + sharePost + ", paid=" + paid + ", goodsName=" + goodsName + ", prop2="
                + prop2 + ", goodsId=" + goodsId + ", goodsNo=" + goodsNo + ", specName=" + specName + ", specNo="
                + specNo + ", specCode=" + specCode + ", suiteNo=" + suiteNo + ", suiteName=" + suiteName
                + ", suiteNum=" + suiteNum + ", suiteAmount=" + suiteAmount + ", suiteDiscount=" + suiteDiscount
                + ", apiGoodsName=" + apiGoodsName + ", apiSpecName=" + apiSpecName + ", weight=" + weight
                + ", commission=" + commission + ", goodsType=" + goodsType + ", largeType=" + largeType
                + ", invoiceType=" + invoiceType + ", invoiceContent=" + invoiceContent + ", fromMask=" + fromMask
                + ", cid=" + cid + ", remark=" + remark + ", modified=" + modified + ", created=" + created
                + ", taxRate=" + taxRate + ", baseUnitId=" + baseUnitId + ", unitName=" + unitName + ", imgUrl="
                + imgUrl + ", payId=" + payId + "]";
    }

}